const productionGzipExtensionsc = ['js', 'css'];
const CompressionPlugin = require('compression-webpack-plugin');
module.exports = {
  publicPath: process.env.NODE_ENV === "production" ? "./" : "/",
  // Paths
  devServer: {
    host: process.env.VUE_APP_BASE_HOST,
    port: process.env.VUE_APP_BASE_PORT,
    proxy: {
      "/api": {
        target: process.env.VUE_APP_BASE_TARGET,
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    },
  },
  configureWebpack: {
    plugins: [
      new CompressionPlugin({
        //[file] 会被替换成原始资源。[path] 会被替换成原始资源的路径， [query] 会被替换成查询字符串。默认值是 "[path].gz[query]"。
        filename: '[path][base].gz', // 提示compression-webpack-plugin@3.0.0的话asset改为filename
        //可以是 function(buf, callback) 或者字符串。对于字符串来说依照 zlib 的算法(或者 zopfli 的算法)。默认值是 "gzip"。
        algorithm: 'gzip',
        //所有匹配该正则的资源都会被处理。默认值是全部资源。
        test: new RegExp('\\.(' + productionGzipExtensionsc.join('|') + ')$'),
        //只有大小大于该值的资源会被处理。单位是 bytes。默认值是 0。
        threshold: 10240,
        //只有压缩率小于这个值的资源才会被处理。默认值是 0.8。
        minRatio: 0.8
      })
    ],
  },
  // 关闭线上源码
  productionSourceMap: false,
  chainWebpack: (config) => {
    const svgRule = config.module.rule('svg');

    svgRule.uses.clear();

    svgRule
      .use('babel-loader')
      .loader('babel-loader')
      .end()
      .use('vue-svg-loader')
      .loader('vue-svg-loader');
  }
}